
package com.insigma.business.qrcode.soldier.service;



import com.insigma.business.qrcode.soldier.dto.SoldierBasicInfoBSearcher;
import com.insigma.business.qrcode.soldier.entity.DataStatsCDO;
import com.insigma.business.qrcode.soldier.entity.SoldierBasicInfoDO;

import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Set;


public interface SoldierBasicInfoService {

    
    List<SoldierBasicInfoDO> search(final SoldierBasicInfoBSearcher innerSearcher);

    
    Integer count(final SoldierBasicInfoBSearcher innerSearcher);

    
    SoldierBasicInfoDO get(final String id);

    
    Integer insert(final SoldierBasicInfoDO soldierBasicInfo);

    
    Integer update(final SoldierBasicInfoDO soldierBasicInfo);

    
    Integer delete(final String id, final String modifierType, final String modifierId);

    
    SoldierBasicInfoDO getByIdCardNo(String idCardNo);

    
    SoldierBasicInfoDO getBySoldierId(String soldierId);

    
    SoldierBasicInfoDO getByQrSuccess(String soldierId);
    
    SoldierBasicInfoDO getByQrSuccessOfHzAndFhz(String soldierId);

    
    SoldierBasicInfoDO getSoldierBasicInfoByCard(String idCardNo, String name);

    
    List<SoldierBasicInfoDO> listSoldierBasicInfoByNameOfArea(String name, String adminAreaCode);


    
    List<DataStatsCDO> countSubAreaPerson(String adminAreaCode);

    
    List<DataStatsCDO> queryAllSoldierResult(String adminAreaCode);

    
    List<DataStatsCDO> queryAllSoldierResult(String adminAreaCode, Date beginDate, Date endDate);

    
    List<SoldierBasicInfoDO> listByIdList(final List<String> idList);

    
    List<SoldierBasicInfoDO> listByIdCardNoList(final List<String> idCardNoList);

    
    Boolean checkIfApplyQrSucc(String soldierId);

    
    List<DataStatsCDO> querySoldierQrSuccessResult(String areaLike, int nextLevel, int levelLength);

    
    List<DataStatsCDO> querySoldierQrSuccessResult(String areaCode);

    List<DataStatsCDO> querySoldierQrSuccessResult(String areaCode, Date beginDate, Date endDate);

    
    int countQrSuccessByArea(String areaLike);

    int countQrSuccessByArea(String areaLike, Date beginDate, Date endDate);

    
    Integer countSoldier(String areaLike);

    
    Integer countSoldier(String areaLike, Date beginDate, Date endDate);

    
    List<SoldierBasicInfoDO> searchPreferentialTreatment(SoldierBasicInfoBSearcher soldierBasicInfoBSearcher);

    List<Map<String, String>> queryAreaQrDetail(String adminAreaCode);

    List<DataStatsCDO> queryAreaSoldierQrStats(String adminAreaCode, int isQr);

    List<DataStatsCDO> queryAreaSoldierQrStats(String adminAreaCode, int isQr, Date beginDate, Date endDate);

    List<SoldierBasicInfoDO> searchAreaSoldierShortList(SoldierBasicInfoBSearcher soldierBasicInfoBSearcher);

    
    Integer countRetiredSoldier(String areaLike);

    
    Integer countSoldierByGender(String type, String adminAreaCode);


    Integer setSoldierDead(String idCardNo, String info);

    List<SoldierBasicInfoDO> listByNameAndAdminAreaCode(String name, String adminAreaCode);

    List<SoldierBasicInfoDO> searchAreaDifficultySoldierShortList(SoldierBasicInfoBSearcher soldierBasicInfoBSearcher);

    List<SoldierBasicInfoDO> searchAreaUnemploymentSoldierShortList(SoldierBasicInfoBSearcher soldierBasicInfoBSearcher);

    
    Integer countRealDifficultyByArea(String adminAreaCode);

    
    Integer countRealUnemploymentByArea(String adminAreaCode);

    List<DataStatsCDO> countSubAreaRealUnemploymentDistri(String adminAreaCode);

    List<DataStatsCDO> countSubAgeRealUnemploymentDistri(String adminAreaCode);

    List<SoldierBasicInfoDO> searchNewNotInTpAll(SoldierBasicInfoBSearcher innerSearcher);

    List<DataStatsCDO> countSubAreaLowSide(String adminAreaCode);

    List<DataStatsCDO> countSubAreaExtremelyPoor(String adminAreaCode);

    List<DataStatsCDO> countSubAreaSubsistenceAllowance(String adminAreaCode);

    Integer countSoldierType(String adminAreaCode, List<String> preferentialTreatmentSoldierType);

    Integer countPartyMember(String adminAreaCode);

    
    List<SoldierBasicInfoDO> listAllSameAdminAreaCode(String adminAreaCode);

    String getOriginAddress(String idCardNo);

    String getAreaCodeByIdCardNo(String idCardNo);

    List<DataStatsCDO> listAgeRangeOfQrSuccess(String areaLike);

    Boolean isWestLakePreTreatment(String idCardNo);

    List<DataStatsCDO> groupBySoldierType(String adminAreaCode);

    List<DataStatsCDO> groupByLabels(String adminAreaCode);

    Integer countSubsistenceAllowance(String adminAreaCode);

    Integer countLowSide(String adminAreaCode);

    Integer countExtremelyPoor(String adminAreaCode);

    List<DataStatsCDO> listAgeRange2(String adminAreaCode);

    List<SoldierBasicInfoDO> listProblemBirthday();

    Integer countPreTreatment();

    Integer countPreTreatment(String adminAreaCode);

    Boolean isKeyPreTreatment(String idCardNo);

    SoldierBasicInfoDO getByMobile(String mobile);

    
    List<SoldierBasicInfoDO> listGetByBirthday(String month,String areaLike);

    List<DataStatsCDO> listAgeRange3(String areaLike, String soldierType);

    Integer countQrSuccessByAreaAndType(String areaLike, String applyType);

    List<String> listExistedIdCardNo(Set<String> idCardNoSet);

    List<String> listAllIdCardNo();

    SoldierBasicInfoDO getHzQrSucc(String soldierId);

    List<DataStatsCDO> groupPreferentialTreatmentAreaMap(String adminAreaCode);

    Integer countRetireByAreaAndYear(String adminAreaCode, String year);

    Integer countEntryByAreaAndYear(String adminAreaCode, String year);

    List<DataStatsCDO> groupByEducationLevelOfTp(String adminAreaCode, String tpType);

    List<DataStatsCDO> groupAreaPersonOfTp(String adminAreaCode, String tpType);

    List<String> listAllMobile(String adminAreaCode);

    List<SoldierBasicInfoDO> listBySoldierIdList(List<String> soldierIdList);

    List<SoldierBasicInfoDO> listTestIdTable(String areaCode);


    Integer countWorkAgeSoldier(String adminAreaCode);

    List<DataStatsCDO> groupByPreferentialTreatmentType(String adminAreaCode);

    Integer countPretreatmentOfSyfSoldier(String adminAreaCode);

    List<DataStatsCDO> groupPretreatmentOfSyfSoldier(String adminAreaCode);

    Integer countByAreaAndPretreatLike(String adminAreaCode, String type);

    List<DataStatsCDO>  groupByPolitical(String adminAreaCode);

    List<SoldierBasicInfoDO> searchElderlySoldier(SoldierBasicInfoBSearcher searcher);

    List<DataStatsCDO> groupByPreferentialTreatmentTypeOfOrigin(String adminAreaCode);

    SoldierBasicInfoDO getByIdCardNo_basicDb(String idCardNo);
}
